{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "#设置画图风格与图片中文字体\n",
    "from matplotlib import pyplot as plt\n",
    "plt.style.use(\"ggplot\")\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "#显示所有列\n",
    "pd.set_option('display.max_columns', None)\n",
    "#显示所有行\n",
    "pd.set_option('display.max_rows', None)\n",
    "#设置value的显示长度为100，默认为50\n",
    "pd.set_option('max_colwidth',100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导入数据与描述统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=pd.read_csv(\"data.csv\")\n",
    "#一般有两种编码模式，默认为utf-8,也可以用gbk\n",
    "data=pd.read_csv(\"data.csv\",encoding=\"utf-8\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(18, 7)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>年份</th>\n",
       "      <th>通过与否</th>\n",
       "      <th>分类</th>\n",
       "      <th>分类2</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1500.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1150.00</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>2018.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>NaN</td>\n",
       "      <td>A</td>\n",
       "      <td>5.0</td>\n",
       "      <td>222.22</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>A</td>\n",
       "      <td>14.0</td>\n",
       "      <td>534.40</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       年份 通过与否   分类  分类2    年龄       储蓄  KEY\n",
       "0  2019.0  未通过    A    A   6.0  1500.00  123\n",
       "1  2017.0  未通过    A  NaN   3.0      NaN  123\n",
       "2  2019.0  未通过    A    A  17.0  1150.00  124\n",
       "3  2018.0  未通过  NaN    A   5.0   222.22  124\n",
       "4  2017.0  未通过    B    A  14.0   534.40  567"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>通过与否</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>年份</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2016.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017.0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019.0</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        通过与否\n",
       "年份          \n",
       "2016.0     2\n",
       "2017.0     3\n",
       "2018.0     2\n",
       "2019.0     9"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#groupby\n",
    "data[[\"年份\",\"通过与否\"]].groupby(\"年份\").count()\n",
    "#这里也可以将count()改成你想要的函数，比如sum、median"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>年份</th>\n",
       "      <th>2016.0</th>\n",
       "      <th>2017.0</th>\n",
       "      <th>2018.0</th>\n",
       "      <th>2019.0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>通过与否</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "年份    2016.0  2017.0  2018.0  2019.0\n",
       "通过与否       2       3       2       9"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[[\"年份\",\"通过与否\"]].groupby(\"年份\").count().T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>年份</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>17.000000</td>\n",
       "      <td>17.0</td>\n",
       "      <td>14.000000</td>\n",
       "      <td>18.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>mean</td>\n",
       "      <td>2018.176471</td>\n",
       "      <td>11.0</td>\n",
       "      <td>1942.401429</td>\n",
       "      <td>353.277778</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>std</td>\n",
       "      <td>1.131111</td>\n",
       "      <td>5.5</td>\n",
       "      <td>1587.257135</td>\n",
       "      <td>261.481707</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>min</td>\n",
       "      <td>2016.000000</td>\n",
       "      <td>3.0</td>\n",
       "      <td>222.220000</td>\n",
       "      <td>123.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25%</td>\n",
       "      <td>2017.000000</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>123.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50%</td>\n",
       "      <td>2019.000000</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1375.000000</td>\n",
       "      <td>240.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75%</td>\n",
       "      <td>2019.000000</td>\n",
       "      <td>14.0</td>\n",
       "      <td>2850.000000</td>\n",
       "      <td>561.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>max</td>\n",
       "      <td>2019.000000</td>\n",
       "      <td>21.0</td>\n",
       "      <td>5000.000000</td>\n",
       "      <td>879.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                年份    年龄           储蓄         KEY\n",
       "count    17.000000  17.0    14.000000   18.000000\n",
       "mean   2018.176471  11.0  1942.401429  353.277778\n",
       "std       1.131111   5.5  1587.257135  261.481707\n",
       "min    2016.000000   3.0   222.220000  123.000000\n",
       "25%    2017.000000   6.0  1000.000000  123.250000\n",
       "50%    2019.000000  10.0  1375.000000  240.000000\n",
       "75%    2019.000000  14.0  2850.000000  561.750000\n",
       "max    2019.000000  21.0  5000.000000  879.000000"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()\n",
    "#同样也可以用.T进行转置操作"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "#删除空值太多的行（这里是每行空值大于等于2个）\n",
    "isdrop=[]\n",
    "for index,row in data.iterrows():\n",
    "    if row.isna().sum()>=2:\n",
    "        isdrop.append(1)\n",
    "    else:\n",
    "        isdrop.append(0)\n",
    "data.insert(loc=0,column=\"isdrop\",value=pd.array(isdrop))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>isdrop</th>\n",
       "      <th>年份</th>\n",
       "      <th>通过与否</th>\n",
       "      <th>分类</th>\n",
       "      <th>分类2</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1500.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1150.00</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>2018.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>NaN</td>\n",
       "      <td>A</td>\n",
       "      <td>5.0</td>\n",
       "      <td>222.22</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>A</td>\n",
       "      <td>14.0</td>\n",
       "      <td>534.40</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   isdrop      年份 通过与否   分类  分类2    年龄       储蓄  KEY\n",
       "0       0  2019.0  未通过    A    A   6.0  1500.00  123\n",
       "1       1  2017.0  未通过    A  NaN   3.0      NaN  123\n",
       "2       0  2019.0  未通过    A    A  17.0  1150.00  124\n",
       "3       0  2018.0  未通过  NaN    A   5.0   222.22  124\n",
       "4       0  2017.0  未通过    B    A  14.0   534.40  567"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#通过选择isdrop为0的行，就可以提取对应空值少的数据。\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>isdrop</th>\n",
       "      <th>年份</th>\n",
       "      <th>通过与否</th>\n",
       "      <th>分类</th>\n",
       "      <th>分类2</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1500.0</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1150.0</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>A</td>\n",
       "      <td>14.0</td>\n",
       "      <td>534.4</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>8.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>C</td>\n",
       "      <td>B</td>\n",
       "      <td>8.0</td>\n",
       "      <td>1800.0</td>\n",
       "      <td>234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>NaN</td>\n",
       "      <td>B</td>\n",
       "      <td>11.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>B</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.0</td>\n",
       "      <td>1250.0</td>\n",
       "      <td>785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3200.0</td>\n",
       "      <td>546</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    isdrop      年份 通过与否   分类  分类2    年龄      储蓄  KEY\n",
       "0        0  2019.0  未通过    A    A   6.0  1500.0  123\n",
       "2        0  2019.0  未通过    A    A  17.0  1150.0  124\n",
       "4        0  2017.0  未通过    B    A  14.0   534.4  567\n",
       "5        1  2019.0  未通过    B  NaN   6.0     NaN  879\n",
       "6        0  2016.0  未通过    C    A   8.0  5000.0  342\n",
       "7        0  2019.0  NaN    C    B   8.0  1800.0  234\n",
       "9        0  2019.0   通过  NaN    B  11.0  5000.0  246\n",
       "10       0     NaN   通过    D    B  17.0  1000.0  754\n",
       "11       0  2019.0   通过    D  NaN  14.0  1250.0  785\n",
       "14       0  2017.0   通过    E    B   NaN  3200.0  546"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#按KEY去重\n",
    "datacln=data.drop_duplicates(\"KEY\")\n",
    "datacln"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>isdrop</th>\n",
       "      <th>年份</th>\n",
       "      <th>通过与否</th>\n",
       "      <th>分类</th>\n",
       "      <th>分类2</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1500.0</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1150.0</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>A</td>\n",
       "      <td>14.0</td>\n",
       "      <td>534.4</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>8.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>B</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>20.0</td>\n",
       "      <td>3437.0</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0</td>\n",
       "      <td>2018.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>13.0</td>\n",
       "      <td>1600.0</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>9.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    isdrop      年份 通过与否 分类 分类2    年龄      储蓄  KEY\n",
       "0        0  2019.0  未通过  A   A   6.0  1500.0  123\n",
       "2        0  2019.0  未通过  A   A  17.0  1150.0  124\n",
       "4        0  2017.0  未通过  B   A  14.0   534.4  567\n",
       "6        0  2016.0  未通过  C   A   8.0  5000.0  342\n",
       "12       0  2019.0   通过  D   B  10.0  1000.0  234\n",
       "15       0  2019.0   通过  E   B  20.0  3437.0  342\n",
       "16       0  2018.0   通过  E   B  13.0  1600.0  123\n",
       "17       0  2019.0   通过  E   B   9.0   500.0  567"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#去空\n",
    "datadropna=data.dropna()\n",
    "datadropna"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>isdrop</th>\n",
       "      <th>年份</th>\n",
       "      <th>通过与否</th>\n",
       "      <th>分类</th>\n",
       "      <th>分类2</th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "      <th>KEY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1500.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>A</td>\n",
       "      <td>A</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1150.00</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>2018.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>0</td>\n",
       "      <td>A</td>\n",
       "      <td>5.0</td>\n",
       "      <td>222.22</td>\n",
       "      <td>124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>A</td>\n",
       "      <td>14.0</td>\n",
       "      <td>534.40</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>B</td>\n",
       "      <td>0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>C</td>\n",
       "      <td>A</td>\n",
       "      <td>8.0</td>\n",
       "      <td>5000.00</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>B</td>\n",
       "      <td>8.0</td>\n",
       "      <td>1800.00</td>\n",
       "      <td>234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>未通过</td>\n",
       "      <td>C</td>\n",
       "      <td>B</td>\n",
       "      <td>21.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>0</td>\n",
       "      <td>B</td>\n",
       "      <td>11.0</td>\n",
       "      <td>5000.00</td>\n",
       "      <td>246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>B</td>\n",
       "      <td>17.0</td>\n",
       "      <td>1000.00</td>\n",
       "      <td>754</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>1250.00</td>\n",
       "      <td>785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>D</td>\n",
       "      <td>B</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1000.00</td>\n",
       "      <td>234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>0</td>\n",
       "      <td>B</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3200.00</td>\n",
       "      <td>546</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>20.0</td>\n",
       "      <td>3437.00</td>\n",
       "      <td>342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0</td>\n",
       "      <td>2018.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>13.0</td>\n",
       "      <td>1600.00</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>通过</td>\n",
       "      <td>E</td>\n",
       "      <td>B</td>\n",
       "      <td>9.0</td>\n",
       "      <td>500.00</td>\n",
       "      <td>567</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    isdrop      年份 通过与否 分类 分类2    年龄       储蓄  KEY\n",
       "0        0  2019.0  未通过  A   A   6.0  1500.00  123\n",
       "1        1  2017.0  未通过  A   0   3.0     0.00  123\n",
       "2        0  2019.0  未通过  A   A  17.0  1150.00  124\n",
       "3        0  2018.0  未通过  0   A   5.0   222.22  124\n",
       "4        0  2017.0  未通过  B   A  14.0   534.40  567\n",
       "5        1  2019.0  未通过  B   0   6.0     0.00  879\n",
       "6        0  2016.0  未通过  C   A   8.0  5000.00  342\n",
       "7        0  2019.0    0  C   B   8.0  1800.00  234\n",
       "8        0  2016.0  未通过  C   B  21.0     0.00  123\n",
       "9        0  2019.0   通过  0   B  11.0  5000.00  246\n",
       "10       0     0.0   通过  D   B  17.0  1000.00  754\n",
       "11       0  2019.0   通过  D   0  14.0  1250.00  785\n",
       "12       0  2019.0   通过  D   B  10.0  1000.00  234\n",
       "13       1  2019.0   通过  0   B   5.0     0.00  123\n",
       "14       0  2017.0   通过  E   B   0.0  3200.00  546\n",
       "15       0  2019.0   通过  E   B  20.0  3437.00  342\n",
       "16       0  2018.0   通过  E   B  13.0  1600.00  123\n",
       "17       0  2019.0   通过  E   B   9.0   500.00  567"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#填充空值(可以把0换成对应中位数、均值)\n",
    "datafillna=data.fillna(0)\n",
    "datafillna"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据缩尾"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "#x是列，a,b是想要进行切分的位置\n",
    "def cap(x,a,b):\n",
    "    qa=x.quantile(a)\n",
    "#     print(qa)\n",
    "    qb=x.quantile(b)\n",
    "#     print(qb)\n",
    "    for i in x:\n",
    "        if i <=qa :\n",
    "            x.replace(i,qa,inplace = True)\n",
    "        if i >=qb:\n",
    "            x.replace(i,qb,inplace = True)\n",
    "#     print(pd.DataFrame(x).describe())\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=pd.read_csv(\"data.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "年份     2019.0\n",
      "年龄       21.0\n",
      "储蓄     5000.0\n",
      "KEY     879.0\n",
      "dtype: float64\n",
      "\n",
      "年份     2019.0\n",
      "年龄       18.2\n",
      "储蓄     4531.1\n",
      "KEY     763.3\n",
      "dtype: float64\n"
     ]
    }
   ],
   "source": [
    "#直接进行缩尾处理\n",
    "datacap=pd.DataFrame.copy(data)\n",
    "cols=datacap.describe().columns\n",
    "for cols in cols:\n",
    "    datacap.replace(datacap[cols],cap(datacap[cols],0.1,0.9),inplace=True)\n",
    "print(data.max(),datacap.max(),sep=\"\\n\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(18, 7)\n",
      "(9, 7)\n",
      "(8, 7)\n"
     ]
    }
   ],
   "source": [
    "#显示所有数据形状\n",
    "print(data.shape)\n",
    "#提取通过的数据\n",
    "datapass=pd.DataFrame.copy(data[data[\"通过与否\"]==\"通过\"])\n",
    "print(datapass.shape)\n",
    "#提取未通过的数据\n",
    "datafail=pd.DataFrame.copy(data[data[\"通过与否\"]==\"未通过\"])\n",
    "print(datafail.shape)\n",
    "#分组进行缩尾\n",
    "cols=datapass.describe().columns\n",
    "for cols in cols:\n",
    "    datapass.replace(datapass[cols],cap(datapass[cols],0.1,0.9),inplace=True)\n",
    "    datafail.replace(datafail[cols],cap(datafail[cols],0.1,0.9),inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['年份', '年龄', '储蓄', 'KEY'], dtype='object')"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#找到数字相关的指标所在列\n",
    "data.describe().columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEHCAYAAABcCaZFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAfS0lEQVR4nO3df3CT9eEH8HfaNC2hFGjTcq2YloDlxq92XXtey92oEqubeDjAibVzypwHzq8nTtSJtVVWzJAhZ9HOc8Mx3A69gfXOOXAZFrsCAQYYWsyo0NRDst6KLSWUJE2efP/wyJnmd5o07Yf36y/yPJ8nfeeTx7dPn+TpI3O73W4QEdG4lpToAERENHIscyIiAbDMiYgEwDInIhIAy5woQpcuXYIkSYmOQeSFZU7CO3LkCO6//35cvnzZZ11lZSX27t0bcNuPPvoIRUVFXsvy8vLw1VdfxTwn0UjIEx2AKN5aW1thNBqRlpaG6upq/OlPf4Jc/s2uP2HCBKSmpsLtduMf//gHqqqqsHTpUpjNZqSkpODy5cu4cOECSktLPc9nt9tx1113QS6XQ5IkDAwMoKOjA6mpqYl6iUQscxLfnj17cN999yElJQUdHR04cOAArFYrVq9ejcuXL+P48eO48847sXv3brS3t+ODDz7wbHvo0CH84Q9/wJYtW7B161Y888wzqK6uRlNTE3JychL4qoi8yXjREImsvb0d8+fPR1tbGyoqKvCrX/0KmZmZWLduHQBgyZIleOqpp/DHP/4RGo0GTzzxBKqrq5GSkoLk5GTP87jdbrz//vtYvHgxJk+e7FkuSRKGhoawceNGzJ8/f9RfH9E1PDInob388ssAALlcDrvdjpdeegkpKSm4evUqJkyYAADo6urChx9+iP/85z+QyWSoq6tDSkoK5HI5hoaG0NTUBIPBgNbWVkyePBmHDx/G559/joceeggulwtDQ0MoKChI4Ksk4pE5CcxoNKKiogK5ubl47rnn8PTTT+PixYvo6elBcXEx0tPTAQBnzpxBfn4+FAoF1Go19Ho9AOCee+6BXq9Hf38/iouLoVQq4XA4kJqaijVr1uBHP/oRlEplIl8ikQfLnIRlMBhw8OBBfPDBB9i8eTNKS0uhVCoxODgIAPj444/R2NgIl8uFDz/8EElJ3l/uMhqNSEpKwqlTp9Dc3IzU1FSsXr0aFRUVePLJJ5GZmYnnnnvOZzuiRGCZk/AqKys9ZZ6eng6r1Yqenh7Mnz8fkyZNQkpKCmw2G6ZNmwaDwQAAeO2117Bz506cPn0ag4ODmD17Nm644QZIkgSXywUA6OvrQ3Z2Nnbs2IEbb7wxkS+RiOfM6fpz6NAh3HXXXbBarThy5AgKCgpw7NgxPPnkk54xxcXFyMjIwJw5c1BYWIgpU6b4PI/L5cKDDz6Irq4uljklHMucrjvTp0/Hu+++i8cffxy3336758h8+vTpnjGXLl3Co48+isLCQs+yU6dOeX1jpbOzE3/+85/x/e9/f1TzE/nDMqfrRl9fH2w2GxYtWoSjR4/C7XZj3759niPzp556yjM2LS0Nubm5ePbZZz3Lfvazn+Hpp5/2nCOvra3lhUI0ZrDMSXg2mw2SJKG/vx933303tm3bhqysLAwNDWHx4sWeI/NvnypxOp1ITk72Or0ik8kwZcoUT5nL5XLP+XOiRGOZk/AuX74Mm82GGTNm4K9//atn+eDgINra2jxH5j//+c896+x2Oy5cuID6+nrPsry8PLz00kuex+fPn4fNZhuV10AUCr/NQkQkAH5BlohIACxzIiIBsMyJiATAMiciEkDCvs1y4cKFqLZTqVTo7e2NcZqRG4u5xmImgLkixVyRETlXXl5ewHU8MiciEgDLnIhIACxzIiIB8ApQIhqX3G635081yGQyz/Kenh7Y7fYEJvMv3FxutxtJSUlIS0vzel2hsMyJaFyy2Wye2/t9m1wu97p/61gRSS6n0wmbzea5tWE4eJqFiMYlSZJ8ilwUcrkckiRFtA3LnIjGpUhOQYxHkb6+sMq8v78fTz/9dMD1TU1NWL9+PXbv3h3RDyciuh45HI6YP2dYv6Ps3Lkz4A83GAyQJAkNDQ144403YLFYkJubG9OQREShuBo3AADcMhmkGPwx2OT/qw05xmKx4KWXXsLjjz+O3NxcTJo0Cb/+9a9RU1ODSZMm4ciRI9i5cyfkcjlOnjyJ4uJiAMBnn32GoqIiOJ1OLFu2DPfee++I84Ys8/b2dqSmpvq9ByIAdHR0oLy8HABQVFQEk8nkt8z1ej30ej0AQKfTQaVSRRdYLo9625Hqa1gXcN0lmQzJcfprwlPXvxLVdomcq2CYKzLM5V9PT4/XOXP3t05LJMXgFEw45+P37duHsrIynDt3DqdOncLZs2fxt7/9De3t7QCA3//+97j55puRnJyMd955BzfddBPkcjnOnj2LH//4x3C5XH4/xAWA1NTUiOY3aFqn04ndu3fjqaeewiuv+C8Uu92OzMxMAEB6ejq6urr8jtNqtdBqtZ7H0V7WmshLdV1BfjVSKBRx+dUJGJ9zFQxzRYa5/LPb7V7fDrl2NJ4UoyNzp9MZdP3Vq1fxxhtv4Le//S3mzp0Ls9mMu+++G5IkYfLkyUhOTsbhw4dhMpmQnJyMEydOoLW1FYsWLcJnn32GS5cuYcKECbjpppvwgx/8wO/rGz6/UV/O39zcjKqqKkycODHgmLS0NE+JXfvOJxGR6Hbs2IEZM2bgiy++wIMPPoiLFy/i1Vdfhc1mw0cffQSr1YqrV6/iwQcfxO7du/Hpp59icHAQn3zyCebMmYOamho8/vjjfos8GkGPzE+dOoX29nbs27cPZrMZv/vd77B69WqvMRqNBiaTCYWFheju7g76fw4iIlH89Kc/hVKpxKxZs7Bo0SLceOONmD17NtavX4+hoSF8/vnnWLduHQwGA2699VZ8/fXXcLlcqKyshCRJ0Ol0KCsrw3333YeUlJQR5wla5i+++KLn3/X19ViyZAl27dqFlStXepaXlZWhrq4OfX19OHnyJBoaGkYciohorBt+Qc/p06fx1ltvYfHixXjmmWewadMmAN+cJj1x4gSSk5Phdrvxl7/8xbNNVlZWTIociOAK0Gs3tv12kQOAUqlEXV0djEYjli5dCqVSGZNgRETjhcvlQktLC5599ln8/e9/h9ls9px+tlqtKC0txeLFi/HJJ59g4sSJ+N73vofm5mZMmjQpZhlicvlUeno6KioqYvFURERRufZVQrlcHvLDy1i59hlhSkoKfvKTn8BqtaKtrQ1ffPGF14eXdrsdV65cgcPhgFwu9/zbHcNvwIl5LSwR0SgYHBzE0NAQ1q5dCwD46KOPsGbNGlRXV+Ohhx4CAAwNDeGTTz7B6dOnPeV9+PBhfPXVV7jzzjtjloVlTkQUpUcffdTr8Q9/+EPPv99++20AQE1NDWpqauL+GwP/NgsRjUuxPEUxFkX6+ljmRDQuJSUljdq58dHmdDqRlBRZPfM0CxGNS2lpabDZbLDb7V5/YTA1NXVM3pwi3FzfvjlFJFjmRDQuyWQyvzdvSPSfGQgk3rl4moWISAAscyIiAbDMiYgEwDInIhIAy5yISAAscyIiAbDMiYgEwDInIhIAy5yISABhlbnVaoXRaMTAwEC88xARURRCXs5vtVqh0+lQUlKCHTt2oK6uDhkZGV5jXC4XHnvsMUybNg0AsGrVKqjV6vgkJiIiHyHL/Msvv8QDDzyAwsJCWK1WnDt3DsXFxV5juru7sXDhQtTU1MQtKBERBRayzOfMmQPgm5uVnj17FitWrPAZ09nZiePHj6OjowNqtRqPPPIIkpOTY5+WiIj8CuuvJrrdbhw8eBATJ06EXO67ycyZM1FbW4upU6di27ZtOHHiBEpLS73G6PV66PV6AIBOp4NKpYousFwe9bYj1adQBFyXJJNBEWT9SEwdh3MVDHNFhrkic73mkrkjuJ3Frl27oFarfW7ePDQ0hJSUFADf3APP5XLhrrvuCvpcFy5ciCJuYv+8patxQ8B1CoXCczfuWLt2o9pIXa9/CjRazBUZ5opMLHLl5eUFXBfy2yzNzc04cOAAgG9uXqpUKn3GNDY2wmw2Q5IkHD16FPn5+SOIS0REkQpZ5lqtFp9++inq6uogSRKysrKwa9curzErVqzAtm3bsG7dOhQWFmLBggVxC0xERL5CnjNPT09Hba33r/krV670eqxWq7F58+bYJiMiorDxClAiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGEVeZWqxVGoxEDAwPxzkNERFEIWeZWqxU6nQ5ffPEFXnzxxYCF3tTUhPXr12P37t0xD0lERMGFLPMvv/wSDzzwAJYtW4aioiKcO3fOZ4zBYIAkSWhoaEBPTw8sFktcwhIRkX8hb+g8Z84cAMDp06dx9uxZrFixwmdMR0cHysvLAQBFRUUwmUzIzc31GqPX66HX6wEAOp0OKpUqusByedTbjlSfQhFwXZJMBkWQ9SMxdRzOVTDMFRnmisz1mitkmQOA2+3GwYMHMXHiRMjlvpvY7XZkZmYCANLT09HV1eUzRqvVQqvVeh739vZGFVilUkW97Ui5HI6A6xQKBRxB1o/EeJyrYJgrMswVGZFz5eXlBVwX1gegMpkMDz/8MNRqNY4dO+azPi0tzVNkNpsNkiRFGZWIiKIRssybm5tx4MABAMDg4CCUSqXPGI1GA5PJBADo7u5GTk5OjGMSEVEwIctcq9Xi008/RV1dHSRJQlZWFnbt2uU1pqysDK2trdixYwcOHTqEkpKSuAUmIiJfIc+Zp6eno7a21mvZypUrvR4rlUrU1dXBaDRi6dKlfo/eiYgofsL6ADQc6enpqKioiNXTERFRBHg5PxGRAFjmREQCYJkTEQmAZU5EJACWORGRAFjmREQCYJkTEQmAZU5EJACWORGRAFjmREQCYJkTEQmAZU5EJACWORGRAFjmREQCYJkTEQmAZU5EJACWORGRAELeaWhwcBBbt26FJElITU3F2rVrIZd7b+ZyufDYY49h2rRpAIBVq1ZBrVbHJzEREfkIWeatra1YsmQJFixYgLfeegsnT55EaWmp15ju7m4sXLgQNTU1cQtKRESBhSzz22+/3fPvgYEBZGRk+Izp7OzE8ePH0dHRAbVajUceeQTJycleY/R6PfR6PQBAp9NBpVJFF1guj3rbkepTKAKuS5LJoAiyfiSmjsO5Coa5IsNckblec4V9Q+czZ87gypUrKCws9Fk3c+ZM1NbWYurUqdi2bRtOnDjhc/Su1Wqh1Wo9j3t7e6MKrFKpot52pFwOR8B1CoUCjiDrR2I8zlUwzBUZ5oqMyLny8vICrgurzK1WK7Zv345f/vKXftfn5+cjJSUFAKDRaGCxWKKISURE0Qr5bRan04ktW7aguroa2dnZfsc0NjbCbDZDkiQcPXoU+fn5MQ9KRESBhTwy379/P7q6urBnzx7s2bMHc+fOhcvlwsqVKz1jVqxYgddeew1utxulpaVYsGBBXEMTEZG3kGVeVVWFqqqqoGPUajU2b94cs1BERBQZXjRERCQAljkRkQBY5kREAmCZExEJgGVORCQAljkRkQBY5kREAmCZExEJgGVORCQAljkRkQBY5kREAmCZExEJgGVORCQAljkRkQBY5kREAmCZExEJgGVORCQAljkRkQBC3jZucHAQW7duhSRJSE1Nxdq1ayGX+27W1NSE8+fPo6SkBMuXL49LWCIi8i/kkXlrayuWLFmC559/HlOmTMHJkyd9xhgMBkiShIaGBvT09MBiscQlLBER+RfyyPz222/3/HtgYAAZGRk+Yzo6OlBeXg4AKCoqgslkQm5urtcYvV4PvV4PANDpdFCpVNEFlsuj3nak+hSKgOuSZDIogqwfkTd/E9Vml2QyJLvdI/rRU9e/MqLt/UnkexgMc0WGuSIT71why/yaM2fO4MqVKygsLPRZZ7fbkZmZCQBIT09HV1eXzxitVgutVut53NvbG01eqFSqqLcdKZfDEXCdQqGAI8j6RIhFpnjMdSLfw2CYKzLMFZlY5MrLywu4LqwPQK1WK7Zv3441a9b4XZ+WluYpDZvNBkmSoohJRETRClnmTqcTW7ZsQXV1NbKzs/2O0Wg0MJlMAIDu7m7k5OTENiUREQUV8jTL/v370dXVhT179mDPnj2YO3cuXC4XVq5c6RlTVlaGuro69PX14eTJk2hoaIhraCIi8hayzKuqqlBVVRV0jFKpRF1dHYxGI5YuXQqlUhmzgEREFFrYH4CGkp6ejoqKilg9HRERRYBXgBIRCYBlTkQkAJY5EZEAWOZERAJgmRMRCYBlTkQkAJY5EZEAWOZERAJgmRMRCYBlTkQkAJY5EZEAWOZERAJgmRMRCYBlTkQkAJY5EZEAWOZERAJgmRMRCSCsMu/v78cLL7wQcP3XX3+N1atXo76+HvX19RgYGIhZQCIiCi3kbeOsVitef/112O32gGM6OzuxbNmykPcKJSKi+AhZ5klJSVi7di02bdoUcExnZydOnTqFf/7znygqKkJ1dbXPGL1eD71eDwDQ6XRQqVTRBZbLo952pPoUioDrkmQyKIKsT4RYZJoah7lO5HsYDHNFhrkiE+9cIctcqVSGfJLi4mIsX74cqamp2LBhA7q7u5Gfn+81RqvVQqvVeh739vZGERdQqVRRbztSLocj4DqFQgFHkPWJEItM8ZjrRL6HwTBXZJgrMrHIlZeXF3BdTD4AnT17NiZMmICkpCQUFBTAYrHE4mmJiChMMSnzhoYG9PX1wW63w2g0Qq1Wx+JpiYgoTCFPswzX3t6O8+fP44477vAsW7FiBV588UXI5XLcdtttQX8VICKi2Au7zOvr6wEA8+bNw7x587zWzZs3D1u3bo1pMCIiCh8vGiIiEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIAGGVeX9/P1544YWA651OJ3Q6HWpra7F///6YhSMiovCELHOr1YrXX38ddrs94Ji9e/dCo9Fgw4YNMBgMuHr1akxDEhFRcCFv6JyUlIS1a9di06ZNAcd0dHTg/vvvBwB85zvfwdmzZ31u+qzX66HX6wEAOp0OKpUqusByOZLf/E1U245UskIRcF2STAZFkPWJEJNMcZjrSzIZkt3uoGOmrn8l5j83FLlcHvV+GQt9Dev8Lg9nvhIhFrni8T4n+n0MJN65Qpa5UqkM+SR2ux2ZmZkAgPT0dFy6dMlnjFarhVar9Tzu7e2NJKeHSqWCw+GIatt4UigUYy7XWMwEhJcr2v1jJFQqVUJ+7jWuAHMynt/HUOIx34l+HwOJRa68vLyA62LyAWhaWprnTbXZbHCPwaMIIiKRxaTMNRoNTCYTAMBsNiM7OzsWT0tERGGKuMzb29uxd+9er2WLFi3Ce++9h7fffhtfffUVbrrpppgFJCKi0EKeM7+mvr4eADBv3jyfDzezs7Px/PPPw2Qy4d5770VSEr++TkQ0msIu81AyMzNRUVERq6cjIqII8BCaiEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgALHMiIgGwzImIBMAyJyISAMuciEgAYd1pqKmpCefPn0dJSQmWL1/us97lcuGxxx7DtGnTAACrVq2CWq2ObVIiIgooZJkbDAZIkoSGhga88cYbsFgsyM3N9RrT3d2NhQsXoqamJm5BiYgosJBl3tHRgfLycgBAUVERTCaTT5l3dnbi+PHj6OjogFqtxiOPPILk5GSvMXq9Hnq9HgCg0+mgUqmiCyyXQ6FQRLVtPCXJZGMu11jMBISXa2qU+8dIyOXyqPfLWOgLMCfj+X0MJR7vc6Lfx0DinStkmdvtdmRmZgIA0tPT0dXV5TNm5syZqK2txdSpU7Ft2zacOHECpaWlXmO0Wi20Wq3ncW9vb1SBVSoVHA5HVNvGk0KhGHO5xmImILxc0e4fI6FSqRLyc69xBZiT8fw+hhKP+U70+xhILHLl5eUFXBeyzNPS0jxvmM1mgyRJPmPy8/ORkpICANBoNLBYLNFmJSKiKIT8NotGo4HJZALwzbnxnJwcnzGNjY0wm82QJAlHjx5Ffn5+7JMSEVFAIcu8rKwMra2t2LFjBw4dOoTp06dj165dXmNWrFiBbdu2Yd26dSgsLMSCBQviFpiIiHyFPM2iVCpRV1cHo9GIpUuXYsqUKSgoKPAao1arsXnz5nhlJCKiEML6nnl6ejoqKirinYWIiKLEK0CJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiATAMiciEgDLnIhIACxzIiIBsMyJiAQQ1p2GmpqacP78eZSUlGD58uVRjyEiovgIeWRuMBggSRIaGhrQ09MDi8US1RgiIoofmdvtdgcbsH37dhQXF6OkpARtbW1wOBy45ZZbIh6j1+uh1+sBADqdLsYvg4jo+hbyyNxutyMzMxPANzd2vnTpUlRjtFotdDrdiIv82WefHdH28TIWc43FTABzRYq5InO95gpZ5mlpaXA4HAAAm80GSZKiGkNERPETssw1Gg1MJhMAoLu7Gzk5OVGNISKi+Emur6+vDzYgJycHO3bsgMViwbFjx1BVVYW9e/di3rx5AcfU1NQgJSUlbqE1Gk3cnnskxmKusZgJYK5IMVdkrsdcIT8ABQCr1Qqj0Yg5c+ZgypQpUY8hIqL4CKvMiYhobOMVoEQJdO032oGBgURH8TJWc1FgIc+ZjzaXy4Vf/OIXOHbsGFpaWqDRaLBv3z688847MJvNKCkpAQC89957Psviqb+/Hxs3bsQtt9wCp9OJTZs2Yd++fQCAGTNmhL0sXpm+/vprrF271jNvJSUlSE1NRVNTE5qbm9Hf3485c+YAgN9lsTI4OIhXXnkFBw4cgMFgwM0334w333wzrAzxyuUv0/B9bPLkyX73qXjuZ1arFTqdDqmpqdi5cyfKy8uxffv2hM5VoFxPPPFEwufrmv7+frzwwgu47bbbwp6beM7X8Fy33nprQvavMXdk3t3djYULF6K+vh719fVwOp0wmUzYuHEjJk+eDKPRiHPnzvksiyer1YrXX38ddrsdALB3715oNBps2LABBoMBV69eDXtZvDJ1dnZi2bJlnnnLyMjwe2VuvK/WbW1txZIlS/D8889jypQpaGtrCytDPHMNz9Tc3Oy1j6nVar/7VLz3sy+//BIPPPAAli1bhqKiIrS3tyd8rvzl2r9//5iYr2t27twJh8MR9tyM1hXq13IN77DRmq8xd2R+5MgR/Otf/0JLSws6Oztx9epVFBQUYNasWUhJSUF7ezv6+/uhVqu9ls2dOzdumZxOJ8rLy3HkyBFUVlbi/fffx5133omMjAxcvHgRMpkMbW1tYS2L1dc2h2dqaWnB4cOHodfr8b///Q/z58/Hxx9/jLKyMuTm5sLhcKCnpwdnzpzxWRbL3xhmzZqFadOmAQBaWlpw9uxZ3HrrrSEzxDPX8EyZmZkwGAyefaykpASHDh3y2afivZ9lZ2cjKysLp0+fRmtrK6xWK8rLyxM6V/5y5efno62tLeHzBQDt7e2wWCwYGhqCw+EIa27iPV/DcymVSq8OG635GnNH5jNnzkRtbS1efvlluFwuOBwOr6tL+/v7YbPZfJbFk1KphFKp9Dz2d8VruMvilam4uBj19fV4+eWX0dnZie7u7lHP9G1nzpzBlStXkJWVlfC5Gp5pwYIFXvvYiRMn/O5To7Gfud1uHDx4EBMnToRMJhszc/XtXDNmzBgT8+V0OrF7927cf//9AMbGf4f+cg3vsNGarzFX5vn5+Zg6dSqAb76TOfzqUrfb7XfZaAo302jmnD17NiZMmICkpCQUFBTAYrH4vTJ3NK7WtVqt2L59O9asWRN2hnjn+nam4fuYv7karfdPJpPh4YcfhlqtxpkzZ8bEXA3P1dfXNybmq7m5GVVVVZg4cSIA/1eeJ2K+hudK1P415sq8sbERZrMZkiTh6NGjsNvtXleXZmdn+1xxmp2dPaoZv/3zzWazT6Zgy+KloaEBfX19sNvtMBqNUKvVfq/MjffVuk6nE1u2bEF1dbXf9ypQhnjmGp5p+D6Wn5/vd5+K937W3NyMAwcOAPjmQ9qlS5cmfK785XrrrbfGxHydOnUK+/btQ319PcxmM/7973+Pifkanmvjxo0Jma8xd878hhtuQGNjIz7++GPMnz8f99xzD5qbm9Hd3Y2WlhbU1NRArVb7LLv2f8V4amlpQWVlJbKzs/Hmm2/iwoULMJvNuOeee5CTkxPWMplMFpdMKpUKr776KlpaWnDbbbfhu9/9rt8rc2+44Ya4Xq2r1+vR2toKi8WClpYWFBQUQK/Xh8wQz1zDM82aNQvvv/++Zx/TarXIysoa9f1s+vTpePfdd7F//35kZGTgjjvuCGte4v0eDs/18MMPe/03maj5uuWWW1BZWYnKykqcPHkS9fX1Y2K+hudatWpVYubLPQ7Y7Xb3oUOH3P/973+DLhtNFy9edLe1tbmvXLkS8bLRdPnyZXdbW5u7r68v6LKxkGG0cw03Fvaz8TJXbjfnK1Lxni9eAUpEJIAxd86ciIgixzInIhIAy5yISAAscyIiAbDMiYgE8P8yczH/RXEabwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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aswkr776qiKRiMrLyx0z95J08OBB7dmzRy0tLfrzn/+snp4eHTt2zDH5U5GWK+lgMKhXXnlFg4ODkqQDBw6oqqpKL7zwgo4ePaoPP/xwzDETtLa26v7779fmzZtVWlqqI0eOjFphafKqy/Pnz2v9+vV68MEHdfvtt6ujo8NR+SVpz549CoVCY+Y0Nfu5c+d01113yefzyefzKRwOq6urS1u2bNH06dN18uRJnTlzZtSYSd59910FAgEtW7bMUXMvSbW1tbG5v/XWWzV79mxH5U9FWq6kw+GwVqxYoWPHjqmmpkZ//OMf9ZWvfEUlJSX64IMP5HK5dOTIkVFjJrydb8GCBZo9e7YkqaWlRe+9957uuecefepTn1IoFFJfX5+6u7u1fPnyuDFTfhOYOXOmZsyYoXfeeUetra0KBoNasWKFY/J3dHSot7dX165dUygUGpXT1OzHjh3T3//+d7W0tOjUqVP68MMPNW/ePC1YsEB5eXnq6OhQIBBQZWVl3NjixYsnO7qk6/9nt27dqvnz5+vatWvq6OhwzNwPd+HCBb355puKRqOOzG9HWq6ki4qKVFRUFHs81irFZCsXJ1t3d7euXLmiGTNmOC57NBpVW1ubiouL5XK5HJM/HA5r3759+uY3vynJWefN/PnzVV9fr61bt2poaEihUCguZyAQ0MDAwKgxUxw+fFgVFRVavXq1Tp8+rebmZsfM/XAHDhxQbW2to86dVGXkhcORqxSj0eiYY6YIBoNqbGzUd7/73TFXWJq+6tLlcqmurk6VlZXq7u52TP6mpibV1taquLhY0tirW03NPnfuXJWVlUm6/p5cp53zZ8+eldfrVWlpqe6++24tWrTIMXP/kUgkos7OTi1evNhR506qMlLSw1cp9vT0aObMmWOOmSAcDmvHjh1au3btqJwfrbA0edVlU1OTDh06JOn6i6CrV692TP63335bzc3N8vl86unp0T//+U/HZN+5c6d6enoUiUR0/PhxDQ4OxuUc61wy5ZyXpDlz5qivr0+SdObMGf33v/91zNx/pKurSwsXLpTL5XLc/9tUpO3dHdL1e7o1NTWaOXOmdu/erffff189PT16+OGHNWvWrFFjLpcrXYeeMMuy1Nraqt7eXrW0tGjevHmyLCtuheVNN930sVddZkpFRYV+//vf64033lBJSYm++MUvjspqav5Vq1appqZGNTU1am9vl8/nc0z2m266STt37tTBgwf1mc98Rg8//LCampp07tw5tbS0aN26daqsrBw19tFvDZPt05/+tP7yl7/owIEDOnXqlJ5++mm9/vrrjpj7j/ztb39TdXW1KioqxlwZbXp+uzK2mOXChQvq6urSkiVLYverxxoz0VgrLJ206tLJ+Z2cPRQK6a233tLNN98cezF6rDFTOXnuJefnT4QVhwBgMFYcAoDBKGkAMBglDQAGo6QBwGCUNAAY7H8BFTL7gRU0RNwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#查看数字分布，用直方图绘制，range可以通过quantile函数来排除极端点\n",
    "for columns in data.describe().columns:\n",
    "    plt.figure()\n",
    "    plt.title(columns)\n",
    "    plt.hist(data[columns],range=(data[columns].quantile(0.1),data[columns].quantile(0.9)),label=columns,alpha=0.7)\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 对比画图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#分组画图\n",
    "#企业年龄\n",
    "for columns in [\"年龄\" ]:\n",
    "    plt.figure()\n",
    "#     plt.title(columns+\"分布\\n\",loc=\"center\",fontsize=18)\n",
    "    plt.hist(data[data[\"通过与否\"]==\"通过\"][columns],label=\"通过\",alpha=0.7)\n",
    "#     plt.figure()\n",
    "    plt.hist(data[data[\"通过与否\"]==\"未通过\"][columns],label=\"未通过\",alpha=0.7)\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导出表格"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "data[[\"年份\",\"通过与否\"]].groupby(\"年份\").count().T.to_csv(\"按年汇总.csv\",encoding=\"gbk\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "#均值检验结果\n",
    "meantest=[]\n",
    "np.array(meantest)\n",
    "#中位数检验结果\n",
    "mediantest=[]\n",
    "np.array(mediantest)\n",
    "from scipy import stats as st\n",
    "#检验\n",
    "cols=[\"年龄\",\"储蓄\"]\n",
    "for cols in cols:\n",
    "    meantest.append\n",
    "    t,p=st.ttest_ind(datapass[cols].dropna(),datafail[cols].dropna())[0:2]\n",
    "    meantest.append([cols,t,p])\n",
    "    t,p=st.median_test(datapass[cols].dropna(),datafail[cols].dropna())[0:2]\n",
    "    mediantest.append([cols,t,p])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[['年龄', 1.104911090660519, 0.28782591726173323], ['储蓄', 0.8296647392224226, 0.4243676439267027]]\n",
      "[['年龄', 0.25, 0.6170750774519739], ['储蓄', 0.04836309523809534, 0.8259364898221998]]\n"
     ]
    }
   ],
   "source": [
    "#显示结果\n",
    "print(meantest)\n",
    "print(mediantest)\n",
    "#python均值检验与中位数检验,P值小于0.05显著，说明两组数据均值与中位数存在差异\n",
    "#导出结果\n",
    "pd.DataFrame(meantest).to_csv(\"meantest.csv\",encoding=\"gbk\")\n",
    "pd.DataFrame(mediantest).to_csv(\"mediantest.csv\",encoding=\"gbk\")   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>年龄</th>\n",
       "      <th>储蓄</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>通过与否</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>未通过</th>\n",
       "      <td>10.000</td>\n",
       "      <td>1681.324</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>通过</th>\n",
       "      <td>12.375</td>\n",
       "      <td>2123.375</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          年龄        储蓄\n",
       "通过与否                  \n",
       "未通过   10.000  1681.324\n",
       "通过    12.375  2123.375"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[[\"通过与否\",\"年龄\",\"储蓄\"]].groupby(\"通过与否\").mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 区间统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(2.982, 9.0], (2.982, 9.0], (15.0, 21.0], (2.982, 9.0], (9.0, 15.0], ..., (2.982, 9.0], NaN, (15.0, 21.0], (9.0, 15.0], (2.982, 9.0]]\n",
      "Length: 18\n",
      "Categories (3, interval[float64]): [(2.982, 9.0] < (9.0, 15.0] < (15.0, 21.0]]\n",
      "[(5, 10], (0, 5], (15, 20], (0, 5], (10, 15], ..., (0.0, 5.0], NaN, (15.0, 20.0], (10.0, 15.0], (5.0, 10.0]]\n",
      "Length: 18\n",
      "Categories (5, interval[int64]): [(0, 5] < (5, 10] < (10, 15] < (15, 20] < (20, 25]]\n"
     ]
    }
   ],
   "source": [
    "# 区间统计\n",
    "classdata=data[\"年龄\"]\n",
    "classdata=np.array(classdata)\n",
    "a=pd.cut(classdata,3)\n",
    "b=pd.cut(classdata,[0,5,10,15,20,25])\n",
    "print(a)\n",
    "print(b)\n",
    "pd.DataFrame(a).to_csv(\"classa.csv\")\n",
    "pd.DataFrame(b).to_csv(\"classb.csv\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1.0,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "250.236px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
